所以我在弄清楚list :: sort()關於結構列表的正確使用時遇到了一些麻煩。以下是相關代碼: 結構學生 { char firstnm [20], lastnm [20]; 整數ID, 年級; }; listsList; //不正確的代碼... cout <<“,請輸入您自己的姓名,身份證和等級。(例如:myfirst mylast 0 12)\ n”; cin >> data.firstnm >> data.lastnm >> data.id >> data.grade; sList.push_back(data); sList.sort(); 我想解決的問題是使用sList.sort()按ID排序。但是,我不知道如何正確地將其傳遞給list :: sort()。在此先感謝您的幫助/時間! 編輯:解決方案只是將其添加到我的結構 布爾運算符<(const student&cmp)const { 返回id
2021-01-22 08:19:56
您應該看一下std :: sort。 (https://en.cppreference.com/w/cpp/algorithm/sort)該函數有多種定義,您可以在其中定義要排序的內容。 另外,看看那個帖子,我認為這就是您需要的:https://stackoverflow.com/a/21234017/6663947 編輯: 多數民眾贊成在比較例: sList.sort([](const student&a,const student&b){return a.id無效排序(比較比較); 假設您要根據鍵ID升序對列表中的學生對象進行排序。您可以為用戶定義的學生班級定義operator <,方法是: bool運算符<((學生const&a,學生const&b){ 返回a.id